1. Field of the Invention
The present invention relates to the field of software development and deployment and more particularly to deploying new or updated software artifacts from an integrated development environment to an update repository and then deploying the updates to set of heterogeneous client platforms.
2. Description of the Related Art
Software development relates to the creation of a software application and the deployment of the application to the end user. Historically, the term “software application” referred to a single computer program incorporating both program logic and supporting resources including user interface elements and data files. Over time, the concept of the software application matured into a carefully orchestrated arrangement of program objects and supporting resources. To manage this careful orchestration, sophisticated integrated development environments were created and distributed into the marketplace. Modern forms of the integrated development environment permit team collaboration and document versioning in addition to the core function of arranging components and resources into a single application.
Until recently, incremental improvements in a software application were reflected in different, discrete versions of the application which were deployed periodically through physical distribution channels such as computer software retail outlets and authorized consultants. More recently, the advancement of computer communications networks have permitted the widespread and repeated deployment of applications through different versions over private networks and the global Internet. The most sophisticated of computing environments now permit the private distribution of applications to internal users through secure, private networks.
Software applications no longer refer to shrink-wrapped products distributable to the public at large. Given the complexity of different instances of the modern business model, very seldom can a single application or even a collection of widely distributed applications satisfy the operational needs of an organizational end user. Consequently, more frequently, organizations have turned to collaborative environments where custom components can be assembled on an ad hoc basis by the organization itself in order to produce in the aggregate a targeted computing solution able to meet the needs of the organization. One such collaborative environment is the Lotus® Workplace® environment.
Collaborative environments often provide internal development tools which allow the end user to specify the assembly of software artifacts into an application and to custom develop those artifacts. Today, many portal solutions supports the assembly of artifacts into a web based application and the makes the application available to browser based users. In addition, rich client projections of this portal model allow for the deployment of these applications to desktop based end users. An example of this is the projection of the Workplace Collaboration Services Server® into the Workplace® Managed Client®, both manufactured by IBM Corporation of Armonk, N.Y. (Workplace, Collaboration Services Server and Managed Client are all trademarks of IBM Corporation).
The Workplace Managed client is based on the Eclipse™ Rich Client Platform. (Eclipse is a trademark of the Eclipse Foundation) Generally, in the Eclipse rich client platform environment, once an application has been assembled, the application can be deployed and updated to each client user through a provisioning process such as the Eclipse “update site” component. Additional client hosting environments can also be made available on mobile devices using for example the Eclipse eRCP platform.
The update site involves the storage of artifacts in a repository. The application associated with the artifacts can be installed to a client by downloading the artifacts from the repository to the client. The process of deploying an application in this manner, however, is limited by the fact that these artifacts are static and must be in a form suitable for a specific target platform To that end, the update site must independently support each different possible specific target platform and each user must know a priori how to request the specific application in order to support the proper deployment for the specific target platform.